package trastienda.service;

import java.util.Collection;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;

import trastienda.dao.CategoriaDAO;
import trastienda.excepcion.DAOExcepcion;
import trastienda.modelo.Categoria;
@Service
public class CategoriaServiceImpl implements CategoriaService{
	@Autowired
	private CategoriaDAO categoriaDAO;
	
	
	
	public CategoriaDAO getCategoriaDAO() {
		return categoriaDAO;
	}
	public void setCategoriaDAO(CategoriaDAO categoriaDAO) {
		this.categoriaDAO = categoriaDAO;
	}


	@Override
	public Collection<Categoria> listarCategorias() throws DAOExcepcion {
		return categoriaDAO.listarCategorias();
	}
	@Override
	@Transactional(propagation = Propagation.REQUIRED, rollbackFor = { DAOExcepcion.class })
	public Categoria insertarCategoria(Categoria cat) throws DAOExcepcion{
		return categoriaDAO.insertarCategoria(cat);
	}
	@Override
	public Categoria obtenerPorIdCategoria(int idCategoria) throws DAOExcepcion{
		return categoriaDAO.obtenerPorIdCategoria(idCategoria);
	}
	@Override
	@Transactional(propagation = Propagation.REQUIRED, rollbackFor = { DAOExcepcion.class })
	public Categoria modificarCategoria(Categoria cat) throws DAOExcepcion{
		return categoriaDAO.modificarCategoria(cat);
	}
	@Override
	@Transactional(propagation = Propagation.REQUIRED, rollbackFor = { DAOExcepcion.class })
	public void eliminarCategoria(Categoria cat) throws DAOExcepcion{
		categoriaDAO.eliminarCategoria(cat);
	}
}
